定期ミートアップ 第39回
イテレータ
デバッグ
イテレータ
外部イテレータ
RustのIterator<T>
nextがOption<T>を返す
C#のIEnumerable
C++
内部イテレータ
RubyのEnumerable
eachがブロックをとる
外部イテレータがあれば、内部イテレータ(each)は実装できる
逆は大変2022/11/27
RubyはFiberを使う(Enumerator)
eager vs. lazy
RubyのLazyEnumerator
big_file.each_line.map{...}.first(5) →遅い
big_file.each_line.lazy.map{...}.first(5) →5行分しか読み込まないので速い
RustのIteratorは後者に相当
そのかわりVecを得るには.collectが必要。
デバッグ
クロージャ+キャプチャでSEGVする